[][src]Crate libffi_sys

Low-level Rust bindings for libffi

The C libffi library provides two main facilities: assembling calls to functions dynamically, and creating closures that can be called as ordinary C functions. This is an undocumented wrapper, generated by bindgen, intended as the basis for higher-level bindings, but you can see the C libffi documentation.

See the libffi crate for a higher-level API.

Usage

libffi-sys can either build its own copy of the libffi C library from github or it can link against your system’s C libffi. By default it builds its own because many systems ship with an old C libffi; this requires that you have a working make, C compiler, automake, and autoconf first. If your system libffi is new enough (v3.2.1 as of October 2019), you can instead enable the system feature flag to use that. If you want this crate to build a C libffi for you, add

[dependencies]
libffi-sys = "0.9.1"

to your Cargo.toml. If you want to use your system C libffi, then

[dependencies.libffi-sys]
version = "0.9.1"
features = ["system"]

to your Cargo.toml instead.

This crate supports Rust version 1.32 and later.

Structs

_ffi_type
ffi_cif
ffi_closure
ffi_java_raw_closure
ffi_raw_closure

Constants

AIO_PRIO_DELTA_MAX
ARG_MAX
BC_BASE_MAX
BC_DIM_MAX
BC_SCALE_MAX
BC_STRING_MAX
CHARCLASS_NAME_MAX
COLL_WEIGHTS_MAX
DELAYTIMER_MAX
EXPR_NEST_MAX
FFI_64_BIT_MAX
FFI_CLOSURES
FFI_NATIVE_RAW_API
FFI_SIZEOF_ARG
FFI_SIZEOF_JAVA_RAW
FFI_TRAMPOLINE_SIZE
FFI_TYPE_COMPLEX
FFI_TYPE_DOUBLE
FFI_TYPE_FLOAT
FFI_TYPE_INT
FFI_TYPE_LAST
FFI_TYPE_LONGDOUBLE
FFI_TYPE_POINTER
FFI_TYPE_SINT8
FFI_TYPE_SINT16
FFI_TYPE_SINT32
FFI_TYPE_SINT64
FFI_TYPE_STRUCT
FFI_TYPE_UINT8
FFI_TYPE_UINT16
FFI_TYPE_UINT32
FFI_TYPE_UINT64
FFI_TYPE_VOID
HOST_NAME_MAX
LINE_MAX
LINK_MAX
LOGIN_NAME_MAX
MAX_CANON
MAX_INPUT
MB_LEN_MAX
MQ_PRIO_MAX
NAME_MAX
NGROUPS_MAX
NR_OPEN
PATH_MAX
PIPE_BUF
PTHREAD_DESTRUCTOR_ITERATIONS
PTHREAD_KEYS_MAX
PTHREAD_STACK_MIN
RE_DUP_MAX
RTSIG_MAX
SEM_VALUE_MAX
TTY_NAME_MAX
XATTR_LIST_MAX
XATTR_NAME_MAX
XATTR_SIZE_MAX
_ATFILE_SOURCE
_BITS_POSIX1_LIM_H
_BITS_POSIX2_LIM_H
_DEFAULT_SOURCE
_FEATURES_H
_LIBC_LIMITS_H_
_POSIX2_BC_BASE_MAX
_POSIX2_BC_DIM_MAX
_POSIX2_BC_SCALE_MAX
_POSIX2_BC_STRING_MAX
_POSIX2_COLL_WEIGHTS_MAX
_POSIX2_EXPR_NEST_MAX
_POSIX2_LINE_MAX
_POSIX2_RE_DUP_MAX
_POSIX2_CHARCLASS_NAME_MAX
_POSIX_AIO_LISTIO_MAX
_POSIX_AIO_MAX
_POSIX_ARG_MAX
_POSIX_CHILD_MAX
_POSIX_CLOCKRES_MIN
_POSIX_C_SOURCE
_POSIX_DELAYTIMER_MAX
_POSIX_HOST_NAME_MAX
_POSIX_LINK_MAX
_POSIX_LOGIN_NAME_MAX
_POSIX_MAX_CANON
_POSIX_MAX_INPUT
_POSIX_MQ_OPEN_MAX
_POSIX_MQ_PRIO_MAX
_POSIX_NAME_MAX
_POSIX_NGROUPS_MAX
_POSIX_OPEN_MAX
_POSIX_PATH_MAX
_POSIX_PIPE_BUF
_POSIX_RE_DUP_MAX
_POSIX_RTSIG_MAX
_POSIX_SEM_NSEMS_MAX
_POSIX_SEM_VALUE_MAX
_POSIX_SIGQUEUE_MAX
_POSIX_SOURCE
_POSIX_SSIZE_MAX
_POSIX_STREAM_MAX
_POSIX_SYMLINK_MAX
_POSIX_SYMLOOP_MAX
_POSIX_THREAD_DESTRUCTOR_ITERATIONS
_POSIX_THREAD_KEYS_MAX
_POSIX_THREAD_THREADS_MAX
_POSIX_TIMER_MAX
_POSIX_TTY_NAME_MAX
_POSIX_TZNAME_MAX
_STDC_PREDEF_H
_SYS_CDEFS_H
__GLIBC_MINOR__
__GLIBC_USE_DEPRECATED_GETS
__GLIBC_USE_IEC_60559_BFP_EXT
__GLIBC_USE_IEC_60559_FUNCS_EXT
__GLIBC_USE_IEC_60559_TYPES_EXT
__GLIBC_USE_LIB_EXT2
__GLIBC__
__GNU_LIBRARY__
__HAVE_GENERIC_SELECTION
__STDC_IEC_559__
__STDC_IEC_559_COMPLEX__
__STDC_ISO_10646__
__STDC_NO_THREADS__
__SYSCALL_WORDSIZE
__USE_ATFILE
__USE_FORTIFY_LEVEL
__USE_ISOC11
__USE_ISOC95
__USE_ISOC99
__USE_MISC
__USE_POSIX
__USE_POSIX2
__USE_POSIX199309
__USE_POSIX199506
__USE_POSIX_IMPLICITLY
__USE_XOPEN2K
__USE_XOPEN2K8
__WORDSIZE
__WORDSIZE_TIME64_COMPAT32
__glibc_c99_flexarr_available
ffi_abi_FFI_DEFAULT_ABI
ffi_abi_FFI_FASTCALL
ffi_abi_FFI_FIRST_ABI
ffi_abi_FFI_LAST_ABI
ffi_abi_FFI_PASCAL
ffi_abi_FFI_REGISTER
ffi_abi_FFI_STDCALL
ffi_abi_FFI_SYSV
ffi_abi_FFI_THISCALL
ffi_abi_FFI_UNIX64
ffi_status_FFI_BAD_ABI
ffi_status_FFI_BAD_TYPEDEF
ffi_status_FFI_OK
ffi_type_enum_COMPLEX
ffi_type_enum_STRUCT

Statics

ffi_type_complex_double
ffi_type_complex_float
ffi_type_complex_longdouble
ffi_type_double
ffi_type_float
ffi_type_longdouble
ffi_type_pointer
ffi_type_sint8
ffi_type_sint16
ffi_type_sint32
ffi_type_sint64
ffi_type_uint8
ffi_type_uint16
ffi_type_uint32
ffi_type_uint64
ffi_type_void

Functions

ffi_call
ffi_closure_alloc
ffi_closure_free
ffi_java_ptrarray_to_raw
ffi_java_raw_call
ffi_java_raw_size
ffi_java_raw_to_ptrarray
ffi_prep_cif
ffi_prep_cif_core
ffi_prep_cif_var
ffi_prep_closure
ffi_prep_closure_loc
ffi_prep_java_raw_closure
ffi_prep_java_raw_closure_loc
ffi_prep_raw_closure
ffi_prep_raw_closure_loc
ffi_ptrarray_to_raw
ffi_raw_call
ffi_raw_size
ffi_raw_to_ptrarray

Type Definitions

FFI_TYPE
ffi_abi
ffi_arg
ffi_java_raw
ffi_sarg
ffi_status
ffi_type
ffi_type_enum
wchar_t

Unions

ffi_raw